import matplotlib.pyplot as plt
mese = ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio']
temperatura_media = [10, 12, 15, 18, 22]
plt.plot(mese, temperatura_media, marker='o', linestyle='--', color='lightpink')
plt.title('andamento delle temperature medie mensili')
plt.xlabel('mese')
plt.ylabel('temperatura media (°C)')
plt.grid(True, axis="y")
plt.show()
import matplotlib.pyplot as plt
mese = ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio']
temperatura_media = [10, 12, 15, 18, 22]
plt.plot(mese, temperatura_media, marker='x', linestyle='-', color='lightgreen')
plt.title('andamento delle temperature medie mensili')
plt.xlabel('mese')
plt.ylabel('temperatura media (°C)')
plt.grid(True, axis="y")
plt.show()
vendite_mensili={
"gen":1200,
"feb":1000,
"mar":3300,
"apr":4555
}
plt.bar(vendite_mensili.keys(), vendite_mensili.values(), color="blue")
plt.show()
colori = ['gold', 'lightcoral', 'lightskyblue', 'lightgreen', 'pink']
mese = ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio']
temperatura_media = [10, 12, 15, 18, 22]
plt.pie(temperatura_media, labels=mese, colors=colori)
plt.title('percentuale di temperatura media mensile')
plt.show()
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import plotly.express as px
# Genera dati casuali per l'esplorazione
np.random.seed(42)
data = {
'Età': np.random.randint(18, 70, size=1000),
'Genere': np.random.choice(['Maschio', 'Femmina'], size=1000),
'Punteggio': np.random.uniform(0, 100, size=1000),
#random normal esce il numero con la media più alta, invece quella più bassa ha poca possibilità di uscire
'Reddito': np.random.normal(50000, 15000, size=1000)
}
df = pd.DataFrame(data)
# Visualizza le prime righe del dataset
print(df.head())
Età Genere Punteggio Reddito 0 56 Maschio 85.120691 52915.764524 1 69 Maschio 49.514653 44702.505608 2 46 Maschio 48.058658 55077.257652 3 32 Femmina 59.240778 45568.978848 4 60 Maschio 82.468097 52526.914644
colori = ['gold', 'lightcoral', 'lightskyblue', 'lightgreen', 'pink']
temperatura_mesi={
'gennaio': 10,
'febbraio':12,
'marzo':15,
'aprile':18,
'maggio':22
}
plt.pie(temperatura_mesi.values(), labels=temperatura_mesi.keys(), colors=colori)
plt.title('percentuale di temoeratura media mensile')
plt.show()
età = [14, 15, 16, 17, 18, 19]
altezza = [160, 165, 170, 175, 180, 185]
plt.scatter(età, altezza, color='red', marker='o')
plt.title('scatter plot - età vs altezza')
plt.xlabel('età')
plt.ylabel('altezza (cm)')
plt.grid(True, axis="y")
plt.show()
nomi_studenti = ['alice', 'bob', 'charlie', 'david', 'eve']
punteggi = [85, 92, 70, 88, 95]
plt.title('punteggi studenti')
plt.xlabel('punteggio')
plt.ylabel('nomi')
plt.barh(nomi_studenti, punteggi, color="blue")
plt.show()
import matplotlib.pyplot as plt
import pandas as pd
nomi_studenti = ['Alice', 'Bob', 'Charlie', 'David', 'Eve']
punteggi = [85, 92, 78, 88, 95]
# Crea un DataFrame con nomi e punteggi
data = {'Nome dello Studente': nomi_studenti, 'Punteggio': punteggi}
df = pd.DataFrame(data)
df.sort_values(by='Punteggio', inplace=True)
df
| Nome dello Studente | Punteggio | |
|---|---|---|
| 2 | Charlie | 78 |
| 0 | Alice | 85 |
| 3 | David | 88 |
| 1 | Bob | 92 |
| 4 | Eve | 95 |
import matplotlib.pyplot as plt
import pandas as pd
nomi_studenti = ['Alice', 'Bob', 'Charlie', 'David', 'Eve']
punteggi = [85, 92, 78, 88, 95]
# Crea un DataFrame con nomi e punteggi
data = {'Nome dello Studente': nomi_studenti, 'Punteggio': punteggi}
df = pd.DataFrame(data)
df.sort_values(by='Punteggio', inplace=False)
plt.title('punteggi studenti')
plt.xlabel('punteggio')
plt.ylabel('nomi')
plt.barh(nomi_studenti, punteggi, color="blue")
plt.show()
df
| Nome dello Studente | Punteggio | |
|---|---|---|
| 0 | Alice | 85 |
| 1 | Bob | 92 |
| 2 | Charlie | 78 |
| 3 | David | 88 |
| 4 | Eve | 95 |
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import plotly.express as px
# Genera dati casuali per l'esplorazione
np.random.seed(42)
data = {
'Età': np.random.randint(18, 70, size=1000),
'Genere': np.random.choice(['Maschio', 'Femmina'], size=1000),
'Punteggio': np.random.uniform(0, 100, size=1000),
#random normal esce il numero con la media più alta, invece quella più bassa ha poca possibilità di uscire
'Reddito': np.random.normal(50000, 15000, size=1000)
}
df = pd.DataFrame(data)
# Visualizza le prime righe del dataset
print(df.head())
Età Genere Punteggio Reddito 0 56 Maschio 85.120691 52915.764524 1 69 Maschio 49.514653 44702.505608 2 46 Maschio 48.058658 55077.257652 3 32 Femmina 59.240778 45568.978848 4 60 Maschio 82.468097 52526.914644
import pandas as pd
# Dataset con dati mancanti rappresentati da None o NaN
dataset = [
{"età": 25, "punteggio": 90, "ammesso": 1},
{"età": None, "punteggio": 85, "ammesso": 0},
{"età": 28, "punteggio": None, "ammesso": 1},
{"età": None, "punteggio": 75, "ammesso": 1},
{"età": 23, "punteggio": None, "ammesso": None},
{"età": 23, "punteggio": 77, "ammesso": None},
]
df = pd.DataFrame(dataset)
df
| età | punteggio | ammesso | |
|---|---|---|---|
| 0 | 25.0 | 90.0 | 1.0 |
| 1 | NaN | 85.0 | 0.0 |
| 2 | 28.0 | NaN | 1.0 |
| 3 | NaN | 75.0 | 1.0 |
| 4 | 23.0 | NaN | NaN |
| 5 | 23.0 | 77.0 | NaN |
df["punteggio"]
0 90.0 1 85.0 2 NaN 3 75.0 4 NaN 5 77.0 Name: punteggio, dtype: float64
df["età"]
0 25.0 1 NaN 2 28.0 3 NaN 4 23.0 5 23.0 Name: età, dtype: float64
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
# Genera dati di esempio
data = {
'Feature1': [1, 2, np.nan, 4, 5],
'Feature2': [np.nan, 2, 3, 4, np.nan],
'Feature3': [1, np.nan, 3, 4, 5]
}
# Crea un DataFrame
df = pd.DataFrame(data)
# Calcola la matrice di missing values
missing_matrix = df.isnull()
missing_matrix
| Feature1 | Feature2 | Feature3 | |
|---|---|---|---|
| 0 | False | True | False |
| 1 | False | False | True |
| 2 | True | False | False |
| 3 | False | False | False |
| 4 | False | True | False |
righe_con_dati_mancanti = df[df.isnull().any(axis=1)]
righe_con_dati_mancanti
| Feature1 | Feature2 | Feature3 | |
|---|---|---|---|
| 0 | 1.0 | NaN | 1.0 |
| 1 | 2.0 | 2.0 | NaN |
| 2 | NaN | 3.0 | 3.0 |
| 4 | 5.0 | NaN | 5.0 |
totale_dati_mancanti = righe_con_dati_mancanti.shape[0]
totale_dati_mancanti
4
totale_dati_mancanti = righe_con_dati_mancanti.shape[1]
totale_dati_mancanti
3
print("righe con dati mancanti:")
print(righe_con_dati_mancanti)
print("totale dati mancanti: ", totale_dati_mancanti)
righe con dati mancanti: Feature1 Feature2 Feature3 0 1.0 NaN 1.0 1 2.0 2.0 NaN 2 NaN 3.0 3.0 4 5.0 NaN 5.0 totale dati mancanti: 3
import pandas as pd
# Dataset con dati mancanti rappresentati da None o NaN
dataset = [
{"nome": "Alice", "età": 25, "punteggio": 90, "email": "alice@email.com"},
{"nome": "Bob", "età": 22, "punteggio": None, "email": None},
{"nome": "Charlie", "età": 28, "punteggio": 75, "email": "charlie@email.com"},
]
# Converti il dataset in un DataFrame
df = pd.DataFrame(dataset)
df
| nome | età | punteggio | ||
|---|---|---|---|---|
| 0 | Alice | 25 | 90.0 | alice@email.com |
| 1 | Bob | 22 | NaN | None |
| 2 | Charlie | 28 | 75.0 | charlie@email.com |
df1=df.dropna(inplace=False)
df1
| nome | età | punteggio | ||
|---|---|---|---|---|
| 0 | Alice | 25 | 90.0 | alice@email.com |
| 2 | Charlie | 28 | 75.0 | charlie@email.com |
df.dropna(inplace=True)
df
| nome | età | punteggio | ||
|---|---|---|---|---|
| 0 | Alice | 25 | 90.0 | alice@email.com |
| 2 | Charlie | 28 | 75.0 | charlie@email.com |
# Crea una heatmap colorata
plt.figure(figsize=(8, 6))
#cbar serve per una barra di clore, False non lo voglio, Truese lo voglio
sns.heatmap(missing_matrix, cmap='viridis', cbar=True,alpha=0.8)
plt.title('Matrice di Missing Values')
plt.show
<function matplotlib.pyplot.show(close=None, block=None)>
import pandas as pd
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
# Genera dati di esempio
data = {
'Variable1': [1, 2, 3, 4, 5],
'Variable2': [1, 2, np.nan, 4, np.nan],
'Missing_Column': ['A', 'B', 'A', 'C', np.nan]
}
# Crea un DataFrame
df = pd.DataFrame(data)
df1=pd.DataFrame()
df
| Variable1 | Variable2 | Missing_Column | |
|---|---|---|---|
| 0 | 1 | 1.0 | A |
| 1 | 2 | 2.0 | B |
| 2 | 3 | NaN | A |
| 3 | 4 | 4.0 | C |
| 4 | 5 | NaN | NaN |
numeric_cols = df.select_dtypes(include=['number'])
numeric_cols
| Variable1 | Variable2 | |
|---|---|---|
| 0 | 1 | 1.0 |
| 1 | 2 | 2.0 |
| 2 | 3 | NaN |
| 3 | 4 | 4.0 |
| 4 | 5 | NaN |
numeric_cols = df.select_dtypes(include=['number'])
numeric_cols.columns
Index(['Variable1', 'Variable2'], dtype='object')
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import plotly.express as px
# Genera dati casuali per l'esplorazione
np.random.seed(42)
data = {
'Età': np.random.randint(18, 70, size=1000),
'Genere': np.random.choice(['Maschio', 'Femmina'], size=1000),
'Punteggio': np.random.uniform(0, 100, size=1000),
#random normal esce il numero con la media più alta, invece quella più bassa ha poca possibilità di uscire
'Reddito': np.random.normal(50000, 15000, size=1000)
}
df = pd.DataFrame(data)
# Visualizza le prime righe del dataset
print(df.head())
Età Genere Punteggio Reddito 0 56 Maschio 85.120691 52915.764524 1 69 Maschio 49.514653 44702.505608 2 46 Maschio 48.058658 55077.257652 3 32 Femmina 59.240778 45568.978848 4 60 Maschio 82.468097 52526.914644
df = pd.DataFrame(data)
df1=pd.DataFrame()
df
| Età | Genere | Punteggio | Reddito | |
|---|---|---|---|---|
| 0 | 56 | Maschio | 85.120691 | 52915.764524 |
| 1 | 69 | Maschio | 49.514653 | 44702.505608 |
| 2 | 46 | Maschio | 48.058658 | 55077.257652 |
| 3 | 32 | Femmina | 59.240778 | 45568.978848 |
| 4 | 60 | Maschio | 82.468097 | 52526.914644 |
| ... | ... | ... | ... | ... |
| 995 | 60 | Femmina | 1.260752 | 28916.494712 |
| 996 | 64 | Maschio | 55.975568 | 50234.275009 |
| 997 | 62 | Femmina | 52.739962 | 63534.157607 |
| 998 | 35 | Maschio | 71.935362 | 36383.657298 |
| 999 | 55 | Maschio | 89.025805 | 72789.258855 |
1000 rows × 4 columns
categorical_cols = df.select_dtypes(exclude=['number'])
categorical_cols.columns
Index(['Genere'], dtype='object')
import plotly.express as px
fig = px.scatter(df, x='Età', y='Reddito', color='Genere', size='Punteggio')
fig.update_layout(title='grafico a dispersione interattivo')
fig.show()
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
# Genera dati casuali per l'esplorazione
np.random.seed(42)
data = {
'Data': pd.date_range(start='2023-01-01', end='2023-12-31', freq='D'),
'Vendite': np.random.randint(100, 1000, size=365),
'Prodotto': np.random.choice(['A', 'B', 'C'], size=365)
}
df = pd.DataFrame(data)
# Visualizza le prime righe del dataset
print(df.head())
# Visualizza un grafico delle vendite nel tempo
plt.figure(figsize=(12, 6))
sns.lineplot(x='Data', y='Vendite', data=df)
plt.title('Andamento delle vendite nel tempo')
plt.xlabel('Data')
plt.ylabel('Vendite')
plt.xticks(rotation=45)
plt.show()
# Visualizza una box plot delle vendite per prodotto
plt.figure(figsize=(10, 6))
sns.boxplot(x='Prodotto', y='Vendite', data=df)
plt.title('Box Plot delle vendite per prodotto')
plt.xlabel('Prodotto')
plt.ylabel('Vendite')
plt.show()
Data Vendite Prodotto 0 2023-01-01 202 B 1 2023-01-02 535 A 2 2023-01-03 960 C 3 2023-01-04 370 A 4 2023-01-05 206 A
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
# Genera dati di esempio
data = {
'Numeric_Var': [1, 2, 3, 4, np.nan, 6],
'Categorical_Var': ['A', 'B', 'A', 'B', 'A', 'B']
}
# Crea un DataFrame
df = pd.DataFrame(data)
print(df)
Numeric_Var Categorical_Var 0 1.0 A 1 2.0 B 2 3.0 A 3 4.0 B 4 NaN A 5 6.0 B
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
# Genera dati casuali per l'esplorazione
np.random.seed(42)
data = {
'Età': np.random.randint(18, 65, size=500),
'Soddisfazione': np.random.choice(['Molto Soddisfatto', 'Soddisfatto', 'Neutro', 'Insoddisfatto', 'Molto Insoddisfatto'], size=500)
}
df = pd.DataFrame(data)
print(df)
conditional_means = df.groupby('Soddisfazione')['Età'].transform('mean')
df['Numeric_Var'] = conditional_means
print(df)
# Crea un grafico a barre per mostrare la media condizionata per ogni categoria
plt.figure(figsize=(8, 6))
sns.barplot(data=df, x='Soddisfazione', y='Numeric_Var', errorbar=None)
plt.xlabel('Soddisfazione')
plt.ylabel('Media Condizionata di Numeric_Var')
plt.title('Media Condizionata delle Variabili Numeriche per Categoria')
plt.xticks(rotation=90)
plt.show()
Età Soddisfazione
0 56 Molto Soddisfatto
1 46 Molto Insoddisfatto
2 32 Neutro
3 60 Neutro
4 25 Molto Insoddisfatto
.. ... ...
495 37 Molto Soddisfatto
496 41 Molto Soddisfatto
497 29 Molto Soddisfatto
498 52 Molto Soddisfatto
499 50 Molto Soddisfatto
[500 rows x 2 columns]
Età Soddisfazione Numeric_Var
0 56 Molto Soddisfatto 41.651376
1 46 Molto Insoddisfatto 40.054054
2 32 Neutro 41.747368
3 60 Neutro 41.747368
4 25 Molto Insoddisfatto 40.054054
.. ... ... ...
495 37 Molto Soddisfatto 41.651376
496 41 Molto Soddisfatto 41.651376
497 29 Molto Soddisfatto 41.651376
498 52 Molto Soddisfatto 41.651376
499 50 Molto Soddisfatto 41.651376
[500 rows x 3 columns]
# Visualizza le prime righe del dataset
print(df.head())
# Visualizza una distribuzione dell'età
plt.figure(figsize=(10, 6))
sns.histplot(df['Età'], bins=50, kde=True)
plt.title('Distribuzione dell\'età dei partecipanti al sondaggio')
plt.xlabel('Età')
plt.ylabel('Conteggio')
plt.show()
# Visualizza un conteggio delle risposte sulla soddisfazione
plt.figure(figsize=(8, 6))
sns.countplot(x='Soddisfazione', data=df, order=['Molto Soddisfatto', 'Soddisfatto', 'Neutro', 'Insoddisfatto', 'Molto Insoddisfatto'])
plt.title('Conteggio delle risposte sulla soddisfazione')
plt.xlabel('Soddisfazione')
plt.ylabel('Conteggio')
plt.xticks(rotation=45)
plt.show()
Età Soddisfazione Numeric_Var 0 56 Molto Soddisfatto 41.651376 1 46 Molto Insoddisfatto 40.054054 2 32 Neutro 41.747368 3 60 Neutro 41.747368 4 25 Molto Insoddisfatto 40.054054
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
# Genera un dataset di esempio con variabili numeriche
np.random.seed(42)
data = pd.DataFrame(np.random.rand(100, 5), columns=['Var1', 'Var2', 'Var3', 'Var4', 'Var5'])
# Aggiungi alcune variabili categoriche generate casualmente
data['Categoria1'] = np.random.choice(['A', 'B', 'C'], size=100)
data['Categoria2'] = np.random.choice(['X', 'Y'], size=100)
# Calcola la matrice di correlazione tra tutte le variabili numeriche
correlation_matrix = data.corr()
# Visualizza la matrice di correlazione come heatmap
plt.figure(figsize=(10, 8))
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', fmt=".2f",alpha=0.7)
plt.title("Matrice di Correlazione")
plt.show()
C:\Users\joele\AppData\Local\Temp\ipykernel_21244\269467967.py:13: FutureWarning: The default value of numeric_only in DataFrame.corr is deprecated. In a future version, it will default to False. Select only valid columns or specify the value of numeric_only to silence this warning.
import pandas as pd
import numpy as np
# Impostare il seed per rendere i risultati riproducibili
np.random.seed(41)
# Creare un dataframe vuoto
df = pd.DataFrame()
# Generare dati casuali
n_rows = 10000
df['CatCol1'] = np.random.choice(['A', 'B', 'C'], size=n_rows)
df['CatCol2'] = np.random.choice(['X', 'Y'], size=n_rows)
df['NumCol1'] = np.random.randn(n_rows)
df['NumCol2'] = np.random.randint(1, 100, size=n_rows)
df['NumCol3'] = np.random.uniform(0, 1, size=n_rows)
# Calcolare il numero totale di missing values desiderati
total_missing_values = int(0.03 * n_rows * len(df.columns))
# Introdurre missing values casuali
for column in df.columns:
num_missing_values = np.random.randint(0, total_missing_values + 1)
missing_indices = np.random.choice(n_rows, size=num_missing_values, replace=False)
df.loc[missing_indices, column] = np.nan
df
| CatCol1 | CatCol2 | NumCol1 | NumCol2 | NumCol3 | |
|---|---|---|---|---|---|
| 0 | A | NaN | 0.440877 | 49.0 | 0.246007 |
| 1 | A | Y | 1.945879 | 28.0 | 0.936825 |
| 2 | C | X | 0.988834 | 42.0 | 0.751516 |
| 3 | A | Y | -0.181978 | 73.0 | 0.950696 |
| 4 | B | X | 2.080615 | 74.0 | 0.903045 |
| ... | ... | ... | ... | ... | ... |
| 9995 | C | Y | 1.352114 | 61.0 | 0.728445 |
| 9996 | C | Y | 1.143642 | 67.0 | 0.605930 |
| 9997 | A | X | -0.665794 | 54.0 | 0.071041 |
| 9998 | C | Y | 0.004278 | NaN | NaN |
| 9999 | A | X | 0.622473 | 95.0 | 0.751384 |
10000 rows × 5 columns
righe_con_dati_mancanti = df[df.isnull().any(axis=1)]
len(righe_con_dati_mancanti)
3648
missing_percent = (df.isnull().sum() / len(df)) * 100
missing_percent
CatCol1 0.29 CatCol2 10.63 NumCol1 9.67 NumCol2 10.48 NumCol3 12.69 dtype: float64
missing_percent = (df.isnull().sum() / len(df)) *100
# Crea il grafico a barre
plt.figure(figsize=(10, 6))
missing_percent.plot(kind='bar', color='skyblue',alpha=0.8)
plt.xlabel('Variabili')
plt.ylabel('Percentuale di Missing Values')
plt.title('Analisi dei Missing Values per Variabile')
plt.xticks(rotation=0)
plt.show()
numeric_features = df.select_dtypes(include=[np.number])
sns.pairplot(df[numeric_features.columns])
plt.title('Matrice di Scatter Plot tra variabili numeriche')
plt.show
<function matplotlib.pyplot.show(close=None, block=None)>
df = df.dropna(subset=['NumCol1', 'NumCol2', 'NumCol3'], how='all' )
df
| CatCol1 | CatCol2 | NumCol1 | NumCol2 | NumCol3 | |
|---|---|---|---|---|---|
| 0 | A | NaN | 0.440877 | 49.0 | 0.246007 |
| 1 | A | Y | 1.945879 | 28.0 | 0.936825 |
| 2 | C | X | 0.988834 | 42.0 | 0.751516 |
| 3 | A | Y | -0.181978 | 73.0 | 0.950696 |
| 4 | B | X | 2.080615 | 74.0 | 0.903045 |
| ... | ... | ... | ... | ... | ... |
| 9995 | C | Y | 1.352114 | 61.0 | 0.728445 |
| 9996 | C | Y | 1.143642 | 67.0 | 0.605930 |
| 9997 | A | X | -0.665794 | 54.0 | 0.071041 |
| 9998 | C | Y | 0.004278 | NaN | NaN |
| 9999 | A | X | 0.622473 | 95.0 | 0.751384 |
9980 rows × 5 columns
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
percorso_file_csv = "C:\\Users\\joele\\OneDrive\\Desktop\\dati robotica\\pokemons.csv"
df = pd.read_csv(percorso_file_csv)
print(df.head())
id name rank generation evolves_from type1 type2 hp \
0 1 bulbasaur ordinary generation-i nothing grass poison 45
1 2 ivysaur ordinary generation-i bulbasaur grass poison 60
2 3 venusaur ordinary generation-i ivysaur grass poison 80
3 4 charmander ordinary generation-i nothing fire None 39
4 5 charmeleon ordinary generation-i charmander fire None 58
atk def spatk spdef speed total height weight \
0 49 49 65 65 45 318 7 69
1 62 63 80 80 60 405 10 130
2 82 83 100 100 80 525 20 1000
3 52 43 60 50 65 309 6 85
4 64 58 80 65 80 405 11 190
abilities desc
0 overgrow chlorophyll A strange seed was planted on its back at birt...
1 overgrow chlorophyll When the bulb on its back grows large, it appe...
2 overgrow chlorophyll The plant blooms when it is absorbing solar en...
3 blaze solar-power Obviously prefers hot places. When it rains, s...
4 blaze solar-power When it swings its burning tail, it elevates t...
import pandas as pd
percorso_file_excel = "C:\\Users\\joele\\OneDrive\\Desktop\\dati robotica\\serieA.xlsx"
df = pd.read_excel(percorso_file_excel , sheet_name='10-11')
df
| position | team | Pt | Played | Won | Net | lose | Goals made | Goals suffered | Difference goals | |
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 1 | Milan Milan | 82 | 38 | 24 | 10 | 4 | 65 | 24 | 41 |
| 1 | 2 | Inter Inter | 76 | 38 | 23 | 7 | 8 | 69 | 42 | 27 |
| 2 | 3 | Napoli Napoli | 70 | 38 | 21 | 7 | 10 | 59 | 39 | 20 |
| 3 | 4 | Udinese Udinese | 66 | 38 | 20 | 6 | 12 | 65 | 43 | 22 |
| 4 | 5 | Lazio Lazio | 66 | 38 | 20 | 6 | 12 | 55 | 39 | 16 |
| 5 | 6 | Roma Roma | 63 | 38 | 18 | 9 | 11 | 59 | 52 | 7 |
| 6 | 7 | Juventus Juventus | 58 | 38 | 15 | 13 | 10 | 57 | 47 | 10 |
| 7 | 8 | Palermo Palermo | 56 | 38 | 17 | 5 | 16 | 58 | 63 | -5 |
| 8 | 9 | Fiorentina Fiorentina | 51 | 38 | 12 | 15 | 11 | 49 | 44 | 5 |
| 9 | 10 | Genoa Genoa | 51 | 38 | 14 | 9 | 15 | 45 | 47 | -2 |
| 10 | 11 | Chievo Chievo | 46 | 38 | 11 | 13 | 14 | 38 | 40 | -2 |
| 11 | 12 | Parma Parma | 46 | 38 | 11 | 13 | 14 | 39 | 47 | -8 |
| 12 | 13 | Catania Catania | 46 | 38 | 12 | 10 | 16 | 40 | 52 | -12 |
| 13 | 14 | Cagliari Cagliari | 45 | 38 | 12 | 9 | 17 | 44 | 51 | -7 |
| 14 | 15 | Cesena Cesena | 43 | 38 | 11 | 10 | 17 | 38 | 50 | -12 |
| 15 | 16 | Bologna Bologna (-3) | 42 | 38 | 11 | 12 | 15 | 35 | 52 | -17 |
| 16 | 17 | Lecce Lecce | 41 | 38 | 11 | 8 | 19 | 46 | 66 | -20 |
| 17 | 18 | Sampdoria Sampdoria | 36 | 38 | 8 | 12 | 18 | 33 | 49 | -16 |
| 18 | 19 | Brescia Brescia | 32 | 38 | 7 | 11 | 20 | 34 | 52 | -18 |
| 19 | 20 | Bari Bari | 24 | 38 | 5 | 9 | 24 | 27 | 56 | -29 |
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
# Creazione di dati casuali per visite al sito web e importo delle vendite
np.random.seed(0)
visite_al_sito = np.random.randint(100, 1000, 1000)
importo_vendite = 50 + 0.2 * visite_al_sito + np.random.normal(0, 10, 1000)
# Suddivisione del dataset in training set (70%) e test set (30%)
X_train, X_test, y_train, y_test = train_test_split(visite_al_sito, importo_vendite, test_size=0.3, random_state=42)
# Creazione di un grafico a dispersione
plt.figure(figsize=(10, 6))
plt.scatter(X_train, y_train, label='Training Set', color='blue', alpha=0.7)
plt.scatter(X_test, y_test, label='Test Set', color='orange', alpha=0.7)
plt.xlabel('Numero di Visite al Sito')
plt.ylabel('Importo delle Vendite')
plt.title('Relazione tra Visite al Sito e Importo delle Vendite')
plt.legend()
plt.grid(True)
plt.show()
# Stampare le dimensioni dei training set e test set
print("Dimensioni del Training Set (visite al sito e importo delle vendite):", X_train.shape, y_train.shape)
print("Dimensioni del Test Set (visite al sito e importo delle vendite):", X_test.shape, y_test.shape)
Dimensioni del Training Set (visite al sito e importo delle vendite): (700,) (700,) Dimensioni del Test Set (visite al sito e importo delle vendite): (300,) (300,)